'''
本脚本用来为 从网页复制过来的题目 分成 文件 一题一文件 并做简单处理
'''
import os


def split_file():
    # step1 读

    all = []
    with open("t_50.txt") as f:  # 读取文件夹内的't_50.txt'题目文件
        all = f.readlines()
    a = 1  # 行计数器
    t_num = 1  # 文件计数器
    inline_num = 0  # 文件内行计数器
    # step2 写
    max_line = all.__len__()  # 总行数
    while a < max_line:
        # 文件
        filename = "Classic50CProgrameTest" + t_num.__str__() + ".h"
        '''文件不存在 创建'''
        if not os.path.exists(filename):
            print("创建文件")
            print("准备写入到", filename)
            cmd = "touch " + filename
            os.system(cmd)
            chmod_str_cmd = "chmod u+w ./" + filename
            os.system(chmod_str_cmd)
        '''如果想删除创建的文件请把此处注释去掉'''
        # else:  # 文件存在 删除
        #     result = os.system("rm " + filename)
        #     if result == 256:
        #         break
        #     t_num += 1
        #     if t_num > 50:
        #         break
        #     continue

        # 写入文件
        with open(filename, "a") as t:
            if not ("===================================" in all[a]):  # 以===为题目分界线
                if inline_num == 0:  # 新文件开头
                    t.write("/**\n")
                line = all[a]
                # 一些替换《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《《
                if "main()" in line:
                    line = line.replace("main", "void T" + t_num.__str__())
                    line = line.replace(""", '"').replace(""", '"')
                if "代码如下:" in line or '掉不满足条件的排列。' in line:
                    line = line + "\n*/"
                if '#include "conio.h' in line:
                    line = '//#include "conio.h"\n'
                if 'getch()' in line:
                    line = '//getch();\n'
                # 一些替换 》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
                t.write(line)  # 写入
                print("writing:", line)
                inline_num += 1
            else:
                t_num += 1  # 开启新文件
                inline_num = 0  # 重置文件开头
            a += 1  # 读取下一行


if __name__ == "__main__":
    split_file()
